# main_gui_fixed.py
import tkinter as tk
import sys
import os
from tkinter import messagebox

def setup_environment():
    """设置正确的Python环境"""
    # 获取当前脚本所在目录
    current_dir = os.path.dirname(os.path.abspath(__file__))
    
    # 打印调试信息
    print("=== 环境设置 ===")
    print(f"脚本位置: {__file__}")
    print(f"当前目录: {current_dir}")
    print(f"工作目录: {os.getcwd()}")
    
    # 添加必要的路径
    paths_to_add = [
        current_dir,  # 当前目录
        os.path.join(current_dir, 'src'),  # src目录
    ]
    
    for path in paths_to_add:
        if path not in sys.path:
            sys.path.insert(0, path)
            print(f"添加路径: {path}")

def import_modules():
    """尝试导入必要的模块"""
    modules_to_import = [
        'src.core.item_manager',
        'src.storage.file_manager', 
        'src.ui.tkinter.main_window'
    ]
    
    imported_modules = {}
    
    for module_path in modules_to_import:
        try:
            # 动态导入模块
            module_name = module_path.split('.')[-1]
            module = __import__(module_path, fromlist=[module_name])
            imported_modules[module_name] = module
            print(f"✅ 成功导入: {module_path}")
        except ImportError as e:
            print(f"❌ 导入失败 {module_path}: {e}")
            return None
    
    return imported_modules

def create_simple_gui():
    """创建简化版GUI（备用方案）"""
    root = tk.Tk()
    root.title("游戏角色收藏管理器")
    root.geometry("600x400")
    
    # 简单的界面
    label = tk.Label(root, text="🎮 游戏角色收藏管理器", font=("Arial", 16))
    label.pack(pady=20)
    
    info_text = """由于项目结构问题，完整GUI暂时不可用。

当前问题：
- 缺少必要的模块文件
- 项目结构不完整

解决方案：
1. 确保所有源代码文件都存在
2. 检查项目目录结构
3. 重新下载完整项目"""

    info_label = tk.Label(root, text=info_text, justify="left")
    info_label.pack(pady=10)
    
    # 显示项目结构
    current_dir = os.getcwd()
    structure_info = f"当前目录: {current_dir}\n"
    
    def scan_directory(path, indent=0):
        result = []
        try:
            for item in os.listdir(path):
                full_path = os.path.join(path, item)
                if os.path.isdir(full_path):
                    result.append("  " * indent + f"📁 {item}/")
                    # 只扫描一级子目录，避免太深
                    if indent == 0:
                        result.extend(scan_directory(full_path, indent + 1))
                else:
                    result.append("  " * indent + f"📄 {item}")
        except PermissionError:
            result.append("  " * indent + "❌ 无权限访问")
        return result
    
    structure_info += "\n".join(scan_directory(current_dir))
    
    text_widget = tk.Text(root, height=15, width=70)
    text_widget.insert("1.0", structure_info)
    text_widget.pack(pady=10)
    
    root.mainloop()

def main():
    """主函数"""
    try:
        print("正在启动游戏角色收藏管理器...")
        
        # 设置环境
        setup_environment()
        
        # 尝试导入模块
        modules = import_modules()
        
        if modules is None:
            print("模块导入失败，启动简化版界面...")
            create_simple_gui()
            return
        
        # 如果导入成功，创建完整GUI
        try:
            from src.ui.tkinter.main_window import MainWindow
            
            root = tk.Tk()
            app = MainWindow(root)
            root.mainloop()
            
        except Exception as e:
            print(f"创建GUI失败: {e}")
            messagebox.showerror("错误", f"创建界面时出错:\n{str(e)}")
            create_simple_gui()
            
    except Exception as e:
        print(f"程序启动失败: {e}")
        messagebox.showerror("启动错误", f"程序无法启动:\n{str(e)}")

if __name__ == "__main__":
    main()